﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using Premiere.DTO;
using Premiere.Framework;

namespace PremiereMX
{
    public interface IUserControlPart : IUserControlBase
    {
        string Code { get; set; }
        string Named { get; set; }
        string Barcode { get; set; }
        PartGroupDTO PartGroup { get; set; }
        PartType PartType { get; set; }
        UnitDTO Unit { get; set; }
        int DecimalPlace { get; set; }
        CurrencyDTO Currency { get; set; }
        CostMethod CostMethod { get; set; }
        PartCategoryDTO PartCategory1 { get; set; }
        PartCategoryDTO PartCategory2 { get; set; }
        PartCategoryDTO PartCategory3 { get; set; }
        decimal MinimumStock { get; set; }
        decimal MaximumStock { get; set; }
        decimal CostPrice { get; set; }
        decimal SellPrice { get; set; }
        decimal CurrentStock { get; set; }
        bool Taxable { get; set; }
        bool Multiuom { get; set; }
        bool Discontinue { get; set; }
        string Note { get; set; }

        DateTime LastUpdate { set; }
        string ComputerName { set; }
        string UserUpdateBy { set; }
        void ShowMessage(string mess);
        void UpdateList(IList list);
        
        IList GetListUom();
        IList GetListVendorPartName();
        IList GetListServicePart();

        void ClearUomList();
        void ClearVendorPartNameList();
        void ClearServicerPartList();
        void ClearActivityList();

        void AddUOM(UnitConversionDTO ecvs);
        void AddVendorPartName(VendorPartNameDTO ve);
        void AddServicePart(ServicePartDTO sp);
        void AddActivity(StockCardEntryInfoDTO activity);

        void ClearRecordList();
        FieldInfo FieldInfo { get; }
        string Filter { get;}
        bool Ascending { get; }
        string FoundRecord { set; }
    }
}
